/***************************************************************************
创建者：华磊
 开始时间：               : 2020.1１.21
 copyright            : (C) 深圳市华友高科有限公司
 修改说明：（每次有修改就添加一条，带有 修改人，修改时间，修改描述）

 ***************************************************************************
 *   消息视窗测试用代理类
*                                                                         *
 ***************************************************************************/
#ifndef MESSAGEDELEGATE_H
#define MESSAGEDELEGATE_H

#include "messagedelegate_global.h"
#include "../messageView/messageview.h"
#include <QObject>
/**
 * @brief The MessageDelegate class　消息视窗测试用代理类
 */
class MESSAGEDELEGATESHARED_EXPORT MessageDelegate : public QObject
{

    Q_OBJECT

public:
    MessageDelegate(MessageView *messageViewIn,GlobalData *globalDataIn,QWidget *parent = 0);




public slots:
    /**
     * @brief clearMessageSlot          清除选中消息响应槽函数
     * @param messageIndex　消息所在行号
     */
    void clearMessageSlot(int messageIndex);

    /**
     * @brief clearAllMessageSlot       清除全部消息响应槽函数
     */
    void clearAllMessageSlot();

    /**
     * @brief errorMessageShowOrHideSlot　错误消息显示与否响应槽函数
     * @param errorFlag　错误消息显示与否标志
     */
    void errorMessageShowOrHideSlot(int errorFlag);

    /**
     * @brief warnMessageShowOrHideSlot　警告消息显示与否响应槽函数
     * @param warnFlag　警告消息显示与否标志
     */
    void warnMessageShowOrHideSlot(int warnFlag);

    /**
     * @brief noteMessageShowOrHideSlot　提示消息显示与否响应槽函数
     * @param noteFlag　提示消息显示与否标志
     */
    void noteMessageShowOrHideSlot(int noteFlag);

    /**
     * @brief waitMessageShowOrHideSlot　等待消息显示与否响应槽函数
     * @param waitFlag　等待消息显示与否标志
     */
    void waitMessageShowOrHideSlot(int waitFlag);

    /**
     * @brief showCurrentRobotMessageSlot　显示当前机器人消息响应槽函数
     */
    void showCurrentRobotMessageSlot();

    /**
     * @brief showAllRobotMessageSlot　显示全部机器人消息响应槽函数
     */
    void showAllRobotMessageSlot();



    /**
     * @brief updateDataAndView         mid定时更新数据和界面
     */
    void updateDataAndView();

signals:
    /**
     * @brief clearMsgSignal                清除单条
     * @param msgCoodNum
     */
    void clearMsgSignal(int msgCoodNum);
    /**
     * @brief clearAllMsgSignal             清除所有
     */
    void clearAllMsgSignal();

    /**
     * @brief errorChangeModelSignal        修改运行模式
     * @param model
     */
    void errorChangeModelSignal(int model);

private:

    void initConnect();



private:
    /**
     * @brief messageView       界面类指针
     */
    MessageView *messageView;


    /**
     * @brief globalData        数据指针
     */
    GlobalData *globalData;
    /**
     * @brief currentRobotId    机器人ID缓存
     */
    int currentRobotId;

    /**
     * @brief updateFLag        delegate刷新数据时判断数据是否有改变,有就true,触发更新界面
     */
    bool updateFLag;

    /**
     * @brief errorFlag         error等级消息出现时候:发送T1切换
     */
    int errorFlag;
};

#endif // MESSAGEDELEGATE_H
